import { Component } from 'react'
import { Provider } from 'react-redux'

import * as api from 'src/api'
import store from 'src/store'
import { setPid } from 'src/store/slice/user'
import { getToken } from 'src/utils/app'

import './app.scss'

class App extends Component {
  // async onLaunch(options) {
  //   let data: any = {}
  //   const { pid } = options.query
  //   if (pid) {
  //     data.spread_spid = pid
  //   }
  //   try {
  //     const { code } = await Taro.login()
  //     const { token, user } = await api.login(code, data)
  //     store.dispatch(setUserInfo(user))
  //     setToken(token)
  //   } catch (error) {
  //     Taro.showToast({ title: '登录失败', icon: 'none' })
  //   }
  // }

  async componentDidShow(options) {
    const { pid } = options.query
    if (pid) {
      store.dispatch(setPid(pid))
      const token = getToken()
      if (token) {
        api.spread(pid)
      }
    }
  }

  componentDidCatchError(error, info) {
    console.error(error, info)
  }

  // 在 App 类中的 render() 函数没有实际作用
  // 请勿修改此函数
  render() {
    return <Provider store={store}>{this.props.children}</Provider>
  }
}

export default App
